package com.example.friend.config;

import jakarta.annotation.PostConstruct;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; // 关键：注册为 Spring 组件

import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;

@Component // 必须添加，让 Spring 扫描到并注册为 Bean
@ConfigurationProperties(prefix = "spring.mail") // 绑定 spring.mail 下的配置
@Getter
@Setter
public class MailProperties {
    // 在 MailProperties 类中添加（示例）
    @PostConstruct
    public void printConfig() {
        System.out.println("Mail Properties Loaded:");
        System.out.println("Host: " + host);       // 应输出 smtp.qq.com（或其他配置的 host）
        System.out.println("Port: " + port);       // 应输出 465 或 587
        System.out.println("Username: " + username); // 应输出 xxx@qq.com
        System.out.println("Password: " + password); // 应输出授权码（非明文日志，仅调试时使用）
    }

    private static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;
    // 对应 spring.mail.host
    private String host;
    // 对应 spring.mail.port
    private Integer port;
    // 对应 spring.mail.username
    private String username;
    // 对应 spring.mail.password
    private String password;
    // 默认协议
    private String protocol = "smtp";
    // 默认编码
    private Charset defaultEncoding = DEFAULT_CHARSET;
    // 其他 SMTP 参数
    private Map<String, String> properties = new HashMap<>();
}